package cserver.hsk.la.data;

import java.util.ArrayList;
import java.util.List;

public class MsgList {

	private static List<Message> LIST = new ArrayList<Message>();

	public static boolean Add(Message msg) {
		try {
			LIST.add(msg);
		} catch (Exception e) {
			return false;
		}
		return true;
	}

	public static List<Message> getWithToken(String token) {
		List<Message> returnMsgs = new ArrayList<Message>();
		List<Message> deletemsg = new ArrayList<Message>();
		for (int i = 0; i < LIST.size(); i++) {
			if (LIST.get(i).getToken().contains(token.trim())) {
				returnMsgs.add(LIST.get(i));
				if (LIST.get(i).getType() == 2) {
					deletemsg.add(LIST.get(i));
				}
			}
		}

		LIST.removeAll(deletemsg);
		return returnMsgs;
	}

	public static void deleteMsgWithToken(String token) {
		List<Message> deletemsg = new ArrayList<Message>();
		for (int i = 0; i < LIST.size(); i++) {
			if (LIST.get(i).getToken().contains(token)) {

				deletemsg.add(LIST.get(i));
			}
		}
		LIST.removeAll(deletemsg);
	}

	public static void clearAll() {
		LIST.clear();
	}

	public static String showAll() {
		String res = "";
		for (int i = 0; i < LIST.size(); i++) {
			res += LIST.get(i).getString();
			if (i != LIST.size() - 1) {
				res += "&.";
			}
		}
		return res;

	}

	public static boolean deleteMsgWithObject(Message msg) {
		for (int i = 0; i < LIST.size(); i++) {
			if (LIST.get(i).equals(msg)) {
				LIST.remove(i);
				break;
			}
		}
		return false;
	}
}
